/* 判断是否是数组 */
/* function isArray(arr) {
  return arr instanceof Array
} */

/* 获取数组最大值 */
function getArrayMaxValue(arr) {
  //判断参数有效性
  if (arr instanceof Array) {
    let max = arr[0]
    for (let i = 1; i < arr.length; i++) {
      if (arr[i] > max) {
        max = arr[i]
      }
    }
    return max
  }
  //console.warn('参数不是数组!')
}

/* 获取数组最小值 */
function getArrayMinValue(arr) {
  if (arr instanceof Array) {
    let min = arr[0]
    for (let i = 1; i < arr.length; i++) {
      if (arr[i] < min) {
        min = arr[i]
      }
    }
    return min
  }
  //console.warn('参数不是数组!')
}

/* 数组元素增加 */
function addArrayValue(arr, pos, value) {
  //判断是否是数组
  if (arr instanceof Array) {
    //判断下标是否在合理范围
    if (pos >= 0 && pos <= arr.length) {
      //添加元素的思路 -- 分段法
      let temp = []
      //pos之前
      for (let i = 0; i < pos; i++) {
        temp[i] = arr[i]
      }
      //pos处
      temp[pos] = value
      //pos之后
      for (let i = pos; i < arr.length; i++) {
        temp[i + 1] = arr[i]
      }
      return temp
    }
  }
}

/* 根据下标删除数组元素 */
function deleteArrayValueByIndex(arr, index) {
  if (arr instanceof Array) {
    if (index >= 0 && index < arr.length) {
      let temp = []
      let tempIdx = 0
      for (let i = 0; i < arr.length; i++) {
        if (i != index) {
          temp[tempIdx++] = arr[i]
        }
      }
      return temp
    }
  }
}

/* 根据元素删除数组元素 */
function deleteArrayValueByValue(arr, value) {
  if (arr instanceof Array) {
    let temp = []
    let tempIdx = 0
    for (let i = 0; i < arr.length; i++) {
      if (arr[i] != value) {
        temp[tempIdx++] = arr[i]
      }
    }
    return temp
  }
}

/* 数组元素升序排序 */
function sortArray(arr) {
  if (arr instanceof Array) {
    for (let i = 0; i < arr.length - 1; i++) {
      for (let j = 0; j < arr.length - 1 - i; j++) {
        if (arr[j] > arr[j + 1]) {
          let temp = arr[j]
          arr[j] = arr[j + 1]
          arr[j + 1] = temp
        }
      }
    }
    return arr
  }
}

/* 数组元素降序排序 */
function sortArrayByReverse(arr) {
  if (arr instanceof Array) {
    for (let i = 0; i < arr.length - 1; i++) {
      for (let j = 0; j < arr.length - 1 - i; j++) {
        if (arr[j] < arr[j + 1]) {
          let temp = arr[j]
          arr[j] = arr[j + 1]
          arr[j + 1] = temp
        }
      }
    }
    return arr
  }
}

/* 元素反转 */
function reverseArray(arr) {
  if (arr instanceof Array) {
    let temp = []
    let tempIdx = 0
    for (let i = arr.length - 1; i >= 0; i--) {
      temp[tempIdx++] = arr[i]
    }
    return temp
  }
}

/* 元素排重 */
function deleteArrayMultiValue(arr) {
  if (arr instanceof Array) {
    let newArr = []
    let newIdx = 0
    for (;;) {
      newArr[newIdx++] = arr[0]
      let temp = []
      let tempIdx = 0
      for (let i = 0; i < arr.length; i++) {
        if (arr[i] != arr[0]) {
          temp[tempIdx++] = arr[i]
        }
      }
      arr = temp
      if (arr.length == 0) {
        break
      }
    }
    return newArr
  }
}

/* 随机打乱数组元素 */
function shuffleArray(arr) {
  if (arr instanceof Array) {
    for (let i = 0; i < arr.length; i++) {
      range = parseInt(arr.length * Math.random())
      tap = arr[i]
      arr[i] = arr[range]
      arr[range] = tap
    }
    return arr
  }
}
